Impact of Refactoring on Code Quality Improvement in Software Maintenance
نویسندگان
چکیده
Quality software are robust, reliable and easy to maintain, and therefore reduces the cost of software maintenance. But as software systems undergo modifications, improvements and enhancements to cope with evolving requirements, quality of software can be decreased. Refactoring is one of the methods which have been applied to improve software quality. Supporters claim that it helps increasing the quality of the code, making it easier to understand, modify and maintain. However, there is only limited empirical evidence of such assumption. Therefore it is sometimes difficult to judge whether the refactoring in question should be applied or not without knowing the effect accurately. The purpose of this study is to validate/invalidate the claims that refactoring improves software quality. Experimental research approach is used to achieve the main objectives of this study which is to quantitatively measure the impact of refactoring on code quality improvement in software maintenance. Ten refactoring techniques were evaluated through the experiment in order to access Resource Utilization, Changeability and Analysability which are ISO sub Quality factors. The result for analysability shows a slight advantage for refactoring, but the assumption of increased analysability does not answered from the analysability test. Concerning changeability, both the result and hypothesis test shows disadvantage for refactored code. The analysis of resource utilization also provides hints on disadvantages of the refactoring technique like increase resource consumption in terms of obtained disk space by source files.
منابع مشابه
An Empirical Evaluation of Impact of Refactoring On Internal and External Measures of Code Quality
Refactoring is the process of improving the design of existing code by changing its internal structure without affecting its external behaviour, with the main aims of improving the quality of software product. Therefore, there is a belief that refactoring improves quality factors such as understandability, flexibility, and reusability. However, there is limited empirical evidence to support suc...
متن کاملMultiRefactor: Automated Refactoring to Improve Software Quality
In this paper, a new approach is proposed for automated software maintenance. The tool is able to perform 26 different refactorings. It also contains a large selection of metrics to measure the impact of the refactorings on the software and six different search based optimization algorithms to improve the software. This tool contains both monoobjective and multi-objective search techniques for ...
متن کاملWeb Application Evaluation and Refactoring: A Quality-Oriented Improvement Approach
Web applications must be usable and accessible; at the same time, their continuous evolution makes it difficult to keep a high degree of external quality. Refactoring is a practice of agile methods well-suited for the maintenance and evolution of Web applications. However, this practice is mainly intended and used to improve maintainability and extensibility of the design and code rather than e...
متن کاملOn Choosing Program Refactoring and Slicing Re-engineering Practice Towards Software Quality
The quality of software depends on its maintainability. Software under evolution is modified and enhanced to accommodate new requirements. As a result, the software becomes more complex and deviates from its original design, in turn lowering the quality. Program Slicing and refactoring as program re-engineering approaches, makes software systems maintainable. Effective slicing and refactoring r...
متن کاملHandling of Software Quality Defects in Agile Software Development
Software quality assurance is concerned with the efficient and effective development of large, reliable, and high-quality software systems. In agile software development and maintenance, refactoring is an important phase for the continuous improvement of a software system by removing quality defects like code smells. As time is a crucial factor in agile development, not all quality defects can ...
متن کامل